home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / tool / tousha / tousha.bas next >
Encoding:
BASIC Source File  |  1994-11-16  |  29.4 KB  |  767 lines

  1. 10010 '--------------------------------------------------------------------
  2. 10020 '
  3. 10030 '    斜方投射
  4. 10040 '
  5. 10050 '                                              Copyright (C) TeC 1994
  6. 10060 '--------------------------------------------------------------------
  7. 10070 SCREEN 0 : SCREEN@ 0
  8. 10080 DIM V(10),D(10),H(10),PX(10),PY(10)
  9. 10090 DIM YMAX(10),X(10),XE(10),XMAX(10),VE(10),VP(10),TT(10)
  10. 10100 DIM D2(10),YMAX2(10),X2(10),XE2(10),TT2(10),TT3(10),TT4(10),SD(10)
  11. 10110 DIM A$(50)
  12. 10120 'DIM SE01(1647),SE02(8116),SE03(5795),SE04(2706)                  '**
  13. 10130 'DIM SE05(1395),SE06(8290),SE07(8348)                             '**
  14. 10140 'LOAD@"se_01.snd",SE01 : LOAD@"se_02.snd",SE02                    '**
  15. 10150 'LOAD@"se_03.snd",SE03 : LOAD@"se_04.snd",SE04                    '**
  16. 10160 'LOAD@"se_05.snd",SE05 : LOAD@"se_06.snd",SE06                    '**
  17. 10170 'LOAD@"se_07.snd",SE07                                            '**
  18. 10180 PALETTE  1,[ 63,127,255]
  19. 10190 PALETTE  2,[ 63,255,127]
  20. 10200 PALETTE  3,[131,  0, 89]
  21. 10210 PALETTE  4,[191,191,  0]
  22. 10220 PALETTE  5,[  0,127,127]
  23. 10230 PALETTE  6,[ 63,127,255]
  24. 10240 PALETTE  7,[ 63,255,127]
  25. 10250 PALETTE  8,[131,  0, 89]
  26. 10260 PALETTE  9,[191,191,  0]
  27. 10270 PALETTE 10,[  0,127,127]
  28. 10280 PALETTE 11,[255,255,255]
  29. 10290 PALETTE 12,[ 63, 63, 63]
  30. 10300 PALETTE 13,[127,127,127]
  31. 10310 PALETTE 14,[191,191,191]
  32. 10320 G=9.8! : XMAX=0 : YMAX=0
  33. 10330 A$( 0)="  "
  34. 10340 A$( 1)="☆"
  35. 10350 A$( 2)="[ メニュー ]"
  36. 10360 A$( 3)="  (入力する値)  →  (求める値)"
  37. 10370 A$( 4)="初速度,仰角,高さ  →  最高点,落下点,瞬間速度,所要時間"
  38. 10380 A$( 5)="初速度,高さ,一点  →  仰角,最高点,落下点,瞬間速度,所要時間"
  39. 10390 A$( 6)="仰角,高さ,一点    →  初速度,最高点,落下点,瞬間速度,所要時間"
  40. 10400 A$( 7)="初速度,高さ       →  最大距離,仰角,最高点,瞬間速度,所要時間"
  41. 10410 A$( 8)="今から入力するデータは、   個目です。(残り    )"
  42. 10420 A$( 9)="初速度[m/sec] を入力してください"
  43. 10430 A$(10)="仰角[°] を入力してください"
  44. 10440 A$(11)="高さ[m] を入力してください"
  45. 10450 A$(12)="一点(x,y)[m] を入力してください"
  46. 10460 A$(13)="初速度"
  47. 10470 A$(14)="仰角"
  48. 10480 A$(15)="高さ"
  49. 10490 A$(16)="一点"
  50. 10500 A$(17)="最高点"
  51. 10510 A$(18)="落下点"
  52. 10520 A$(19)="最大距離"
  53. 10530 A$(20)="瞬間速度"
  54. 10540 A$(21)="所要時間"
  55. 10550 A$(22)="今入力したデータは、   個目です。(残り    )    "
  56. 10560 A$(23)="処理 >>>     入力     演算     取り消す     取り消して演算"
  57. 10570 A$(24)="データがありません"
  58. 10580 A$(25)="データがいっぱいです"
  59. 10590 A$(26)="十字キー >>>  他の結果を表示"
  60. 10600 A$(27)="実行キー >>>  グラフ化(表示後、実行キー でこの画面を合成)"
  61. 10610 A$(28)="取消キー >>>  次の処理(データ入力、メニュー、終了 の選択)"
  62. 10620 A$(29)="<条件>"
  63. 10630 A$(30)="<結果>"
  64. 10640 A$(31)="指定した一点は通過できません"
  65. 10650 A$(32)="処理 >>>     データ入力     メニュー     プログラム終了"
  66. 10660 A$(33)="(x座標)"
  67. 10670 A$(34)="(y座標)"
  68. 10680 A$(35)="(一点)"
  69. 10690 A$(36)="(落下点)"
  70. 10700 A$(37)="任意"
  71. 10710 A$(38)="OK!"
  72. 10720 A$(39)="エラー発生!!!  ERROR LEVEL:^j\@o%%]k.&e"
  73. 10730 A$(40)="緊急事態につき 終了します."
  74. 10740 A$(41)="自動復旧プログラム 作動中"
  75. 10750 A$(42)="そのままお待ち下さい."
  76. 10760 A$(43)="^j\o%%]k.&e "
  77. 10770 A$(44)="^j\o%]k.&e  "
  78. 10780 A$(45)="^j\o%k.&e   "
  79. 10790 A$(46)="^j\o%k&e    "
  80. 10800 A$(47)="j\o%k&e     "
  81. 10810 A$(48)="jo%k&e      "
  82. 10820 A$(49)="jok&e       "
  83. 10830 A$(50)="joke        "
  84. 10840 *メニュー
  85. 10850 CLS
  86. 10860 COLOR 7
  87. 10870 LOCATE  2, 3 : PRINT A$(2)
  88. 10880 LOCATE 15, 5 : PRINT A$(3)
  89. 10890 LOCATE 15, 8 : PRINT A$(4)
  90. 10900 LOCATE 15,11 : PRINT A$(5)
  91. 10910 LOCATE 15,14 : PRINT A$(6)
  92. 10920 LOCATE 15,17 : PRINT A$(7)
  93. 10930 M=1 : N=1
  94. 10940 COLOR 6
  95. 10950 LOCATE 10, 8 : PRINT A$(1)
  96. 10960 IN$=INKEY$ : IF IN$="" THEN 10960
  97. 10970 IF IN$=CHR$(&H1E) THEN M=M-1 : IF M<1 THEN M=1 ELSE M=M : GOTO 11040
  98. 10980 IF IN$=CHR$(&H1F) THEN M=M+1 : IF M>4 THEN M=4 ELSE M=M : GOTO 11040
  99. 10990 IF IN$=CHR$(&H18) THEN *終了                                     '***
  100. 11000 IF IN$=CHR$(&H0D) THEN 11030 ELSE 10960                          '***
  101. 11010 'IF IN$=CHR$(&H18) THEN PCMPLAY SE02,127 : GOTO *終了             '**
  102. 11020 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 ELSE 10960               '**
  103. 11030 ON M GOTO *M1,*M2,*M3,*M4
  104. 11040 'PCMPLAY SE01,127                                                 '**
  105. 11050 ON M-1 GOTO 11080,11110,11140
  106. 11060 LOCATE 10, 8 : PRINT A$(1)
  107. 11070 LOCATE 10,11 : PRINT A$(0) : GOTO 10960
  108. 11080 LOCATE 10, 8 : PRINT A$(0)
  109. 11090 LOCATE 10,11 : PRINT A$(1)
  110. 11100 LOCATE 10,14 : PRINT A$(0) : GOTO 10960
  111. 11110 LOCATE 10,11 : PRINT A$(0)
  112. 11120 LOCATE 10,14 : PRINT A$(1)
  113. 11130 LOCATE 10,17 : PRINT A$(0) : GOTO 10960
  114. 11140 LOCATE 10,14 : PRINT A$(0)
  115. 11150 LOCATE 10,17 : PRINT A$(1) : GOTO 10960
  116. 11160 *M1
  117. 11170 CLS
  118. 11180 COLOR 7
  119. 11190 LOCATE  0, 1 : PRINT A$(8)
  120. 11200 COLOR 6
  121. 11210 LOCATE 24, 1 : PRINT USING"##";N
  122. 11220 LOCATE 44, 1 : PRINT USING"##";11-N
  123. 11230 COLOR 7
  124. 11240 LOCATE  2, 5 : PRINT A$(9)
  125. 11250 LOCATE  6, 7 : INPUT"",IN$ : CY=7 : GOSUB *文字判定1
  126. 11260 IF IN<0 THEN 11250 ELSE V(N)=IN
  127. 11270 LOCATE  2,10 : PRINT A$(10)
  128. 11280 LOCATE  6,12 : INPUT"",IN$ : CY=12 : GOSUB *文字判定2
  129. 11290 IF IN<-90 OR IN>90 THEN 11280 ELSE D(N)=IN
  130. 11300 LOCATE  2,15 : PRINT A$(11) 
  131. 11310 LOCATE  6,17 : INPUT"",IN$ : CY=17 : GOSUB *文字判定1
  132. 11320 IF IN<0 THEN 11310 ELSE H(N)=IN
  133. 11330 GOSUB *選択<処理1>
  134. 11340 ON D+1 GOTO 11170,11350,11170,11350
  135. 11350 FOR I=1 TO N
  136. 11360    SD(I)=0
  137. 11370    VSIN=V(I)*SIN(D(I)*3.14159!/180)
  138. 11380    VCOS=V(I)*COS(D(I)*3.14159!/180)
  139. 11390    IF D(I)=-90 THEN VSIN=-V(I) : VCOS=0
  140. 11400    IF D(I)=90 THEN VSIN=V(I) : VCOS=0
  141. 11410    YMAX(I)=VSIN^2/(2*G)+H(I)
  142. 11420    X(I)=VSIN*VCOS/G
  143. 11430    IF D(I)<0 THEN YMAX(I)=H(I) : X(I)=0
  144. 11440    VE(I)=SQR(V(I)^2+2*G*H(I))
  145. 11450    TT(I)=(VSIN+SQR(VSIN^2+2*G*H(I)))/G
  146. 11460    XE(I)=VCOS*TT(I)
  147. 11470    IF XMAX<XE(I) THEN XMAX=XE(I)
  148. 11480    IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  149. 11490 NEXT I
  150. 11500 DP=1 : GOTO 11620
  151. 11510 WHILE NOT INKEY$="" : WEND
  152. 11520 IN$=INKEY$ : IF IN$="" THEN 11520
  153. 11530 IF IN$=CHR$(&H1C) OR IN$=CHR$(&H1F) THEN DP=DP+1 : GOTO 11590
  154. 11540 IF IN$=CHR$(&H1D) OR IN$=CHR$(&H1E) THEN DP=DP-1 : GOTO 11590
  155. 11550 IF IN$=CHR$(&H0D) THEN *グラフ                                   '***
  156. 11560 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 : GOTO *グラフ           '**
  157. 11570 IF IN$=CHR$(&H18) THEN GOSUB *選択<処理2> ELSE 11510
  158. 11580 ON D+1 GOTO *M1,*メニュー,*終了
  159. 11590 IF DP<1 THEN DP=1 : GOTO 11510
  160. 11600 IF DP>N THEN DP=N : GOTO 11510
  161. 11610 'PCMPLAY SE05,127                                                 '**
  162. 11620 CLS 1
  163. 11630 COLOR 5
  164. 11640 LOCATE  0, 0 : PRINT USING"PAGE ##";DP
  165. 11650 LOCATE 15, 1 : PRINT A$(29)
  166. 11660 LOCATE 17, 3 : PRINT A$(13)
  167. 11670 LOCATE 17, 4 : PRINT A$(14)
  168. 11680 LOCATE 17, 5 : PRINT A$(15)
  169. 11690 LOCATE 15, 8 : PRINT A$(30)
  170. 11700 LOCATE 17,10 : PRINT A$(17)
  171. 11710 LOCATE 17,13 : PRINT A$(18)
  172. 11720 LOCATE 17,15 : PRINT A$(20)
  173. 11730 LOCATE 17,17 : PRINT A$(21)
  174. 11740 GOSUB *キー案内
  175. 11750 COLOR 7
  176. 11760 LOCATE 31, 3 : PRINT V(DP);" [m/sec]"
  177. 11770 LOCATE 31, 4 : PRINT D(DP);" [°]"
  178. 11780 LOCATE 31, 5 : PRINT H(DP);" [m]"
  179. 11790 LOCATE 31,10 : PRINT YMAX(DP);" [m]";A$(34)
  180. 11800 LOCATE 31,11 : PRINT X(DP);" [m]";A$(33)
  181. 11810 LOCATE 31,13 : PRINT XE(DP);" [m]";A$(33)
  182. 11820 LOCATE 31,15 : PRINT VE(DP);" [m/sec]";A$(36)
  183. 11830 LOCATE 31,17 : PRINT TT(DP);" [sec]";A$(36)
  184. 11840 GOTO 11510
  185. 11850 *M2
  186. 11860 CLS
  187. 11870 COLOR 7
  188. 11880 LOCATE  0, 1 : PRINT A$(8)
  189. 11890 COLOR 6
  190. 11900 LOCATE 24, 1 : PRINT USING"##";N
  191. 11910 LOCATE 44, 1 : PRINT USING"##";11-N
  192. 11920 COLOR 7
  193. 11930 LOCATE  2, 5 : PRINT A$(9)
  194. 11940 LOCATE  6, 7 : INPUT"",IN$ : CY=7 : GOSUB *文字判定1
  195. 11950 IF IN<0 THEN 11940 ELSE V(N)=IN
  196. 11960 LOCATE  2,10 : PRINT A$(11)
  197. 11970 LOCATE  6,12 : INPUT"",IN$ : CY=12 : GOSUB *文字判定1
  198. 11980 IF IN<0 THEN 11970 ELSE H(N)=IN
  199. 11990 LOCATE  2,15 : PRINT A$(12)
  200. 12000 LOCATE  2,17 : INPUT"x = ",IN$ : CY=17 : GOSUB *文字判定1
  201. 12010 IF IN<0 THEN 12000 ELSE PX(N)=IN
  202. 12020 LOCATE  2,18 : INPUT"y = ",IN$ : CY=18 : GOSUB *文字判定1
  203. 12030 IF IN<0 THEN 12020 ELSE PY(N)=IN
  204. 12040 IF NOT(PX(N)=0 AND PY(N)=0) THEN 12060
  205. 12050 LOCATE  0,17 : PRINT SPC(160) : GOTO 12000
  206. 12060 GOSUB *選択<処理1>
  207. 12070 ON D+1 GOTO 11860,12080,11860,12080
  208. 12080 FOR I=1 TO N
  209. 12090    SD(I)=V(I)^4-G*(G*PX(I)^2+2*V(I)^2*(PY(I)-H(I)))
  210. 12100    IF SD(I)<0 THEN GOTO 13010
  211. 12110    IF PX(I)>0 THEN 12710
  212. 12120       IF V(I)=0 AND H(I)<PY(I) THEN SD(I)=-1 : GOTO 13010
  213. 12130       IF V(I)=0 THEN SD(I)=0 ELSE 12230
  214. 12140          D(I)=-90
  215. 12150          YMAX(I)=H(I)
  216. 12160          X(I)=0
  217. 12170          VE(I)=SQR(2*G*H(I))
  218. 12180          VP(I)=SQR(2*G*(H(I)-PY(I)))
  219. 12190          TT(I)=VE(I)/G
  220. 12200          TT3(I)=VP(I)/G
  221. 12210          IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  222. 12220          GOTO 13010
  223. 12230       IF H(I)<PY(I) THEN SD(I)=1 ELSE 12420
  224. 12240          D(I)=90
  225. 12250          YMAX(I)=V(I)^2/(2*G)+H(I)
  226. 12260          X(I)=0
  227. 12270          VE(I)=SQR(V(I)^2+2*G*H(I))
  228. 12280          VP(I)=SQR(V(I)^2+2*G*(H(I)-PY(I)))
  229. 12290          TT(I)=(V(I)+SQR(V(I)^2+2*G*H(I)))/G
  230. 12300          TT3(I)=(V(I)-SQR(V(I)^2+2*G*(H(I)-PY(I))))/G
  231. 12310          XE(I)=0
  232. 12320          IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  233. 12330          D2(I)=90
  234. 12340          YMAX2(I)=YMAX(I)
  235. 12350          X2(I)=0
  236. 12360          TT2(I)=TT(I)
  237. 12370          TT4(I)=(V(I)+SQR(V(I)^2+2*G*(H(I)-PY(I))))/G
  238. 12380          IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  239. 12390          XE2(I)=0
  240. 12400          IF YMAX(I)=PY(I) THEN SD(I)=0
  241. 12410          GOTO 13010
  242. 12420       IF H(I)=PY(I) THEN SD(I)=1 ELSE 12540
  243. 12430          D(I)=90
  244. 12440          D2(I)=90
  245. 12450          YMAX2(I)=V(I)^2/(2*G)+H(I)
  246. 12460          X2(I)=0
  247. 12470          VE(I)=SQR(V(I)^2+2*G*H(I))
  248. 12480          VP(I)=V(I)
  249. 12490          TT2(I)=(V(I)+SQR(V(I)^2+2*G*H(I)))/G
  250. 12500          TT4(I)=(V(I)+SQR(V(I)^2+2*G*(H(I)-PY(I))))/G
  251. 12510          XE2(I)=0
  252. 12520          IF YMAX<YMAX2(I) THEN YMAX=YMAX2(I)
  253. 12530          GOTO 13010
  254. 12540       IF H(I)>PY(I) THEN SD(I)=1 ELSE *エラー
  255. 12550          D(I)=-90
  256. 12560          YMAX(I)=H(I)
  257. 12570          X(I)=0
  258. 12580          VE(I)=SQR(V(I)^2+2*G*H(I))
  259. 12590          VP(I)=SQR(V(I)^2+2*G*(H(I)-PY(I)))
  260. 12600          TT(I)=(-V(I)+SQR(V(I)^2+2*G*H(I)))/G
  261. 12610          TT3(I)=(-V(I)+SQR(V(I)^2+2*G*(H(I)-PY(I))))/G
  262. 12620          XE(I)=0
  263. 12630          D2(I)=90
  264. 12640          YMAX2(I)=V(I)^2/(2*G)+H(I)
  265. 12650          X2(I)=0
  266. 12660          TT2(I)=(V(I)+SQR(V(I)^2+2*G*H(I)))/G
  267. 12670          TT4(I)=(V(I)+SQR(V(I)^2+2*G*(H(I)-PY(I))))/G
  268. 12680          XE2(I)=0
  269. 12690          IF YMAX<YMAX2(I) THEN YMAX=YMAX2(I)
  270. 12700          GOTO 13010
  271. 12710       D(I)=ATN((V(I)^2-SQR(SD(I)))/(G*PX(I)))
  272. 12720       D2(I)=ATN((V(I)^2+SQR(SD(I)))/(G*PX(I)))
  273. 12730       VSIN=V(I)*SIN(D(I))
  274. 12740       VCOS=V(I)*COS(D(I))
  275. 12750       YMAX(I)=VSIN^2/(2*G)+H(I)
  276. 12760       X(I)=VSIN*VCOS/G
  277. 12770       IF D(I)<0 THEN YMAX(I)=H(I) : X(I)=0
  278. 12780       VE(I)=SQR(V(I)^2+2*G*H(I))
  279. 12790       VP(I)=SQR(V(I)^2+2*G*(H(I)-PY(I)))
  280. 12800       TT(I)=(VSIN+SQR(VSIN^2+2*G*H(I)))/G
  281. 12810       TT3(I)=(VSIN-SQR(VSIN^2+2*G*(H(I)-PY(I))))/G
  282. 12820       IF TT3(I)>0 THEN 12840
  283. 12830       TT3(I)=(VSIN+SQR(VSIN^2+2*G*(H(I)-PY(I))))/G
  284. 12840       XE(I)=VCOS*TT(I)
  285. 12850       D(I)=D(I)*180/3.14159!
  286. 12860       IF XMAX<XE(I) THEN XMAX=XE(I)
  287. 12870       IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  288. 12880    IF SD(I)=0 THEN 13010
  289. 12890       IF ABS(VSIN)=V(I) AND VCOS=0 THEN 12920
  290. 12900       VSIN2=V(I)*SIN(D2(I))
  291. 12910       VCOS2=V(I)*COS(D2(I))
  292. 12920       YMAX2(I)=VSIN2^2/(2*G)+H(I)
  293. 12930       X2(I)=VSIN2*VCOS2/G
  294. 12940       IF D2(I)<0 THEN YMAX2(I)=H(I) : X2(I)=0
  295. 12950       TT2(I)=(VSIN2+SQR(VSIN2^2+2*G*H(I)))/G
  296. 12960       TT4(I)=(VSIN2+SQR(VSIN2^2+2*G*(H(I)-PY(I))))/G
  297. 12970       XE2(I)=VCOS2*TT2(I)
  298. 12980       D2(I)=D2(I)*180/3.14159!
  299. 12990       IF XMAX<XE2(I) THEN XMAX=XE(I)
  300. 13000       IF YMAX<YMAX2(I) THEN YMAX=YMAX2(I)
  301. 13010 IF XMAX<PX(I) THEN XMAX=PX(I)
  302. 13020 IF YMAX<PY(I) THEN YMAX=PY(I)
  303. 13030 IF YMAX<H(I) THEN YMAX=H(I)
  304. 13040 NEXT I
  305. 13050 DP=1 : GOTO 13160
  306. 13060 IN$=INKEY$ : IF IN$="" THEN 13060
  307. 13070 IF IN$=CHR$(&H1C) OR IN$=CHR$(&H1F) THEN DP=DP+1 : GOTO 13130
  308. 13080 IF IN$=CHR$(&H1D) OR IN$=CHR$(&H1E) THEN DP=DP-1 : GOTO 13130
  309. 13090 IF IN$=CHR$(&H0D) THEN *グラフ                                   '***
  310. 13100 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 : GOTO *グラフ           '**
  311. 13110 IF IN$=CHR$(&H18) THEN GOSUB*選択<処理2> ELSE 13060
  312. 13120 ON D+1 GOTO *M2,*メニュー,*終了
  313. 13130 IF DP<1 THEN DP=1 : GOTO 13060
  314. 13140 IF DP>N THEN DP=N : GOTO 13060
  315. 13150 'PCMPLAY SE05,127                                                 '**
  316. 13160 CLS 1
  317. 13170 COLOR 5
  318. 13180 LOCATE  0, 0 : PRINT USING"PAGE ##";DP
  319. 13190 LOCATE  5, 1 : PRINT A$(29)
  320. 13200 LOCATE  7, 3 : PRINT A$(13)
  321. 13210 LOCATE  7, 4 : PRINT A$(15)
  322. 13220 LOCATE  7, 5 : PRINT A$(16)
  323. 13230 LOCATE  5, 7 : PRINT A$(30)
  324. 13240 LOCATE  7, 9 : PRINT A$(14)
  325. 13250 LOCATE  7,11 : PRINT A$(17)
  326. 13260 LOCATE  7,14 : PRINT A$(18)
  327. 13270 LOCATE  7,16 : PRINT A$(20)
  328. 13280 LOCATE  7,19 : PRINT A$(21)
  329. 13290 GOSUB *キー案内
  330. 13300 COLOR 7
  331. 13310 LOCATE 21, 3 : PRINT V(DP);" [m/sec]"
  332. 13320 LOCATE 21, 4 : PRINT H(DP);" [m]"
  333. 13330 LOCATE 21, 5 : PRINT PX(DP);" [m]";A$(33)
  334. 13340 LOCATE 21, 6 : PRINT PY(DP);" [m]";A$(34)
  335. 13350 IF SD(DP)<0 THEN LOCATE  21, 8 : COLOR 3 : PRINT A$(31) : GOTO 13060
  336. 13360 IF PX(DP)=0 AND H(DP)=PY(DP) THEN 13550
  337. 13370 LOCATE 21, 9 : PRINT D(DP);" [°]"
  338. 13380 LOCATE 21,11 : PRINT YMAX(DP);" [m]";A$(34)
  339. 13390 LOCATE 21,12 : PRINT X(DP);" [m]";A$(33)
  340. 13400 LOCATE 21,14 : PRINT XE(DP);" [m]";A$(33)
  341. 13410 LOCATE 21,16 : PRINT VE(DP);" [m/sec]";A$(36)
  342. 13420 LOCATE 21,17 : PRINT VP(DP);" [m/sec]";A$(35)
  343. 13430 LOCATE 21,19 : PRINT TT(DP);" [sec]";A$(36)
  344. 13440 LOCATE 21,20 : PRINT TT3(DP);" [sec]";A$(35)
  345. 13450 IF SD(DP)=0 THEN 13060
  346. 13460 LOCATE 51, 9 : PRINT D2(DP);" [°]"
  347. 13470 LOCATE 51,11 : PRINT YMAX2(DP);" [m]";A$(34)
  348. 13480 LOCATE 51,12 : PRINT X2(DP);" [m]";A$(33)
  349. 13490 LOCATE 51,14 : PRINT XE2(DP);" [m]";A$(33)
  350. 13500 LOCATE 50,16 : PRINT "(";VE(DP);" [m/sec] )"
  351. 13510 LOCATE 50,17 : PRINT "(";VP(DP);" [m/sec] )"
  352. 13520 LOCATE 51,19 : PRINT TT2(DP);" [sec]";A$(36)
  353. 13530 LOCATE 51,20 : PRINT TT4(DP);" [sec]";A$(35)
  354. 13540 GOTO 13060
  355. 13550 IF V(DP)=0 THEN 13370
  356. 13560 LOCATE 21, 9 : PRINT A$(37)
  357. 13570 LOCATE 21,11 : PRINT A$(37)+A$(34)
  358. 13580 LOCATE 21,12 : PRINT A$(37)+A$(33)
  359. 13590 LOCATE 21,14 : PRINT A$(37)+A$(33)
  360. 13600 LOCATE 21,16 : PRINT VE(DP);" [m/sec]";A$(36)
  361. 13610 LOCATE 21,17 : PRINT VP(DP);" [m/sec]";A$(35)
  362. 13620 LOCATE 21,19 : PRINT A$(37)+A$(36)
  363. 13630 LOCATE 21,20 : PRINT TT3(DP);" [sec]";A$(35)
  364. 13640 GOTO 13450
  365. 13650 *M3
  366. 13660 CLS
  367. 13670 COLOR 7
  368. 13680 LOCATE  0, 1 : PRINT A$(8)
  369. 13690 COLOR 6
  370. 13700 LOCATE 24, 1 : PRINT USING"##";N
  371. 13710 LOCATE 44, 1 : PRINT USING"##";11-N
  372. 13720 COLOR 7
  373. 13730 LOCATE  2, 5 : PRINT A$(10)
  374. 13740 LOCATE  6, 7 : INPUT"",IN$ : CY=7 : GOSUB *文字判定2
  375. 13750 IF IN<-90 OR IN>90 THEN 13740 ELSE D(N)=IN
  376. 13760 LOCATE  2,10 : PRINT A$(11)
  377. 13770 LOCATE  6,12 : INPUT"",IN$ : CY=12 : GOSUB *文字判定1
  378. 13780 IF IN<0 THEN 13770 ELSE H(N)=IN
  379. 13790 LOCATE  2,15 : PRINT A$(12)
  380. 13800 LOCATE  2,17 : INPUT"x = ",IN$ : CY=17 : GOSUB *文字判定1
  381. 13810 IF IN<0 THEN 13800 ELSE PX(N)=IN
  382. 13820 LOCATE  2,18 : INPUT"y = ",IN$ : CY=18 : GOSUB *文字判定1
  383. 13830 IF IN<0 THEN 13820 ELSE PY(N)=IN
  384. 13840 IF NOT(PX(N)=0 AND PY(N)=0) THEN 13860
  385. 13850 LOCATE  0,17 : PRINT SPC(160) : GOTO 13800
  386. 13860 GOSUB *選択<処理1>
  387. 13870 ON D+1 GOTO 13660,13880,13660,13880
  388. 13880 FOR I=1 TO N
  389. 13890    IF D(I)=90 OR D(I)=-90 THEN 14070
  390. 13900    SD(I)=PX(I)*TAN(D(I)*3.14159!/180)-PY(I)+H(I)
  391. 13910    IF NOT SD(I)>0 THEN SD(I)=-1 : GOTO 14360
  392. 13920    V(I)=PX(I)*SQR(G/(2*SD(I)))/COS(D(I)*3.14159!/180)
  393. 13930    SD(I)=0
  394. 13940    VSIN=V(I)*SIN(D(I)*3.14159!/180)
  395. 13950    VCOS=V(I)*COS(D(I)*3.14159!/180)
  396. 13960    YMAX(I)=VSIN^2/(2*G)+H(I)
  397. 13970    X(I)=VSIN*VCOS/G
  398. 13980    IF D(I)<0 THEN YMAX(I)=H(I) : X(I)=0
  399. 13990    VE(I)=SQR(V(I)^2+2*G*H(I))
  400. 14000    VP(I)=SQR(V(I)^2+2*G*(H(I)-PY(I)))
  401. 14010    TT(I)=(VSIN+SQR(VSIN^2+2*G*H(I)))/G
  402. 14020    TT3(I)=(VSIN+SQR(VSIN^2+2*G*(H(I)-PY(I))))/G
  403. 14030    XE(I)=VCOS*TT(I)
  404. 14040    IF XMAX<XE(I) THEN XMAX=XE(I)
  405. 14050    IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  406. 14060    GOTO 14360
  407. 14070       IF NOT PX(I)=0 THEN SD(1)=-1 ELSE 14120
  408. 14080          IF XMAX<PX(I) THEN XMAX=PX(I)
  409. 14090          IF YMAX<PY(I) THEN YMAX=PY(I)
  410. 14100          IF YMAX<H(I) THEN YMAX=H(I)
  411. 14110          GOTO 14360
  412. 14120       IF D(I)=-90 AND H(I)<PY(I) THEN SD(I)=-1 ELSE 14150
  413. 14130          IF YMAX<PY(I) THEN YMAX=PY(I)
  414. 14140          GOTO 14360
  415. 14150       IF PY(I)<H(I) THEN SD(I)=0 ELSE 14260
  416. 14160          V(I)=0 
  417. 14170          YMAX(I)=H(I) 
  418. 14180          X(I)=0 
  419. 14190          XE(I)=0 
  420. 14200          VP(I)=SQR(2*G*(H(I)-PY(I)))
  421. 14210          VE(I)=SQR(2*G*H(I)) 
  422. 14220          TT(I)=VE(I)/G
  423. 14230          TT3(I)=VP(I)/G
  424. 14240          IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  425. 14250          GOTO 14360
  426. 14260       IF D(I)=90 AND H(I)<PY(I) THEN SD(I)=0 ELSE *エラー
  427. 14270          V(I)=SQR(2*G*(PY(I)-H(I)))
  428. 14280          YMAX(I)=PY(I)
  429. 14290          X(I)=0
  430. 14300          XE(I)=0
  431. 14310          VP(I)=0
  432. 14320          VE(I)=SQR(V(I)^2+2*G*H(I))
  433. 14330          TT(I)=(V(I)+SQR(V(I)^2+2*G*H(I)))/G
  434. 14340          TT3(I)=2*V(I)/G
  435. 14350          IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  436. 14360 NEXT I
  437. 14370 DP=1 : GOTO 14480
  438. 14380 IN$=INKEY$ : IF IN$="" THEN 14380
  439. 14390 IF IN$=CHR$(&H1C) OR IN$=CHR$(&H1F) THEN DP=DP+1 : GOTO 14450
  440. 14400 IF IN$=CHR$(&H1D) OR IN$=CHR$(&H1E) THEN DP=DP-1 : GOTO 14450
  441. 14410 IF IN$=CHR$(&H0D) THEN *グラフ                                   '***
  442. 14420 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 : GOTO *グラフ           '**
  443. 14430 IF IN$=CHR$(&H18) THEN GOSUB*選択<処理2> ELSE 14380
  444. 14440 ON D+1 GOTO *M3,*メニュー,*終了
  445. 14450 IF DP<1 THEN DP=1 : GOTO 14380
  446. 14460 IF DP>N THEN DP=N : GOTO 14380
  447. 14470 'PCMPLAY SE05,127                                                 '**
  448. 14480 CLS 1
  449. 14490 COLOR 5
  450. 14500 LOCATE  0, 0 : PRINT USING"PAGE ##";DP
  451. 14510 LOCATE 15, 1 : PRINT A$(29)
  452. 14520 LOCATE 17, 3 : PRINT A$(14)
  453. 14530 LOCATE 17, 4 : PRINT A$(15)
  454. 14540 LOCATE 17, 5 : PRINT A$(16)
  455. 14550 LOCATE 15, 7 : PRINT A$(30)
  456. 14560 LOCATE 17, 9 : PRINT A$(13)
  457. 14570 LOCATE 17,11 : PRINT A$(17)
  458. 14580 LOCATE 17,14 : PRINT A$(18)
  459. 14590 LOCATE 17,16 : PRINT A$(20)
  460. 14600 LOCATE 17,19 : PRINT A$(21)
  461. 14610 GOSUB *キー案内
  462. 14620 COLOR 7
  463. 14630 LOCATE 31, 3 : PRINT D(DP);" [°]"
  464. 14640 LOCATE 31, 4 : PRINT H(DP);" [m]"
  465. 14650 LOCATE 31, 5 : PRINT PX(DP);" [m]";A$(33)
  466. 14660 LOCATE 31, 6 : PRINT PY(DP);" [m]";A$(34)
  467. 14670 IF SD(DP)<0 THEN LOCATE  31, 8 : COLOR 3 : PRINT A$(31) : GOTO 14380
  468. 14680 LOCATE 31, 9 : PRINT V(DP);" [m/sec]"
  469. 14690 LOCATE 31,11 : PRINT YMAX(DP);" [m]";A$(34)
  470. 14700 LOCATE 31,12 : PRINT X(DP);" [m]";A$(33)
  471. 14710 LOCATE 31,14 : PRINT XE(DP);" [m]";A$(33)
  472. 14720 LOCATE 31,16 : PRINT VE(DP);" [m/sec]";A$(36)
  473. 14730 LOCATE 31,17 : PRINT VP(DP);" [m/sec]";A$(35)
  474. 14740 LOCATE 31,19 : PRINT TT(DP);" [sec]";A$(36)
  475. 14750 LOCATE 31,20 : PRINT TT3(DP);" [sec]";A$(35)
  476. 14760 GOTO 14380
  477. 14770 *M4
  478. 14780 CLS
  479. 14790 COLOR 7
  480. 14800 LOCATE  0, 1 : PRINT A$(8)
  481. 14810 COLOR 6
  482. 14820 LOCATE 24, 1 : PRINT USING"##";N
  483. 14830 LOCATE 44, 1 : PRINT USING"##";11-N
  484. 14840 COLOR 7
  485. 14850 LOCATE  2, 5 : PRINT A$(9)
  486. 14860 LOCATE  6, 7 : INPUT"",IN$ : CY=7 : GOSUB *文字判定1
  487. 14870 IF IN<0 THEN 14860 ELSE V(N)=IN
  488. 14880 LOCATE  2,10 : PRINT A$(11)
  489. 14890 LOCATE  6,12 : INPUT"",IN$ : CY=12 : GOSUB *文字判定1
  490. 14900 IF IN<0 THEN 14890 ELSE H(N)=IN
  491. 14910 GOSUB *選択<処理1>
  492. 14920 ON D+1 GOTO 14780,14930,14780,14930
  493. 14930 FOR I=1 TO N
  494. 14940    SD(I)=0
  495. 14950    IF V(I)=0 AND H(I)=0 THEN 15060
  496. 14960    VE(I)=SQR(V(I)^2+2*G*H(I))
  497. 14970    XMAX(I)=V(I)*VE(I)/G
  498. 14980    D(I)=ATN(V(I)/VE(I))
  499. 14990    YMAX(I)=((V(I)*SIN(D(I)))^2)/(2*G)+H(I)
  500. 15000    X(I)=(V(I)^2*SIN(2*D(I)))/(2*G)
  501. 15010    TT(I)=(V(I)*SIN(D(I))+SQR((V(I)*SIN(D(I)))^2+2*G*H(I)))/G
  502. 15020    D(I)=D(I)*180/3.14159!
  503. 15030    IF XMAX<XMAX(I) THEN XMAX=XMAX(I)
  504. 15040    IF YMAX<YMAX(I) THEN YMAX=YMAX(I)
  505. 15050    GOTO 15120
  506. 15060       XMAX(I)=0
  507. 15070       D(I)=45
  508. 15080       YMAX(I)=0
  509. 15090       X(I)=0
  510. 15100       VE(I)=0
  511. 15110       TT(I)=0
  512. 15120 NEXT I
  513. 15130 DP=1 : GOTO 15250
  514. 15140 WHILE NOT INKEY$="" : WEND
  515. 15150 IN$=INKEY$ : IF IN$="" THEN 15150
  516. 15160 IF IN$=CHR$(&H1C) OR IN$=CHR$(&H1F) THEN DP=DP+1 : GOTO 15220
  517. 15170 IF IN$=CHR$(&H1D) OR IN$=CHR$(&H1E) THEN DP=DP-1 : GOTO 15220
  518. 15180 IF IN$=CHR$(&H0D) THEN *グラフ                                   '***
  519. 15190 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 : GOTO *グラフ           '**
  520. 15200 IF IN$=CHR$(&H18) THEN GOSUB*選択<処理2> ELSE 15140
  521. 15210 ON D+1 GOTO *M4,*メニュー,*終了
  522. 15220 IF DP<1 THEN DP=1 : GOTO 15140
  523. 15230 IF DP>N THEN DP=N : GOTO 15140
  524. 15240 'PCMPLAY SE05,127                                                 '**
  525. 15250 CLS 1
  526. 15260 COLOR 5
  527. 15270 LOCATE  0, 0 : PRINT USING"PAGE ##";DP
  528. 15280 LOCATE 15, 1 : PRINT A$(29)
  529. 15290 LOCATE 17, 3 : PRINT A$(13)
  530. 15300 LOCATE 17, 4 : PRINT A$(15)
  531. 15310 LOCATE 15, 7 : PRINT A$(30)
  532. 15320 LOCATE 17, 9 : PRINT A$(19)
  533. 15330 LOCATE 17,11 : PRINT A$(14)
  534. 15340 LOCATE 17,13 : PRINT A$(17)
  535. 15350 LOCATE 17,16 : PRINT A$(20)
  536. 15360 LOCATE 17,18 : PRINT A$(21)
  537. 15370 GOSUB *キー案内
  538. 15380 COLOR 7
  539. 15390 LOCATE 31, 3 : PRINT V(DP);" [m/sec]"
  540. 15400 LOCATE 31, 4 : PRINT H(DP);" [m]"
  541. 15410 LOCATE 31, 9 : PRINT XMAX(DP);" [m]";A$(33)
  542. 15420 LOCATE 31,11 : PRINT D(DP);" [°]"
  543. 15430 LOCATE 31,13 : PRINT YMAX(DP);" [m]";A$(34)
  544. 15440 LOCATE 31,14 : PRINT X(DP);" [m]";A$(33)
  545. 15450 LOCATE 31,16 : PRINT VE(DP);" [m/sec]";A$(36)
  546. 15460 LOCATE 31,18 : PRINT TT(DP);" [sec]";A$(36)
  547. 15470 GOTO 15140
  548. 15480 *グラフ
  549. 15490 CLS
  550. 15500 IF XMAX/4>YMAX/3 THEN 
  551. 15510       WX1=-XMAX*.05! : WY1=XMAX*1.05!*3/4
  552. 15520       WX2=XMAX*1.05! : WY2=-XMAX*.05!*3/4
  553. 15530    ELSE IF XMAX*3/4<YMAX*4/3 THEN
  554. 15540          WX1=-YMAX*.05!*4/3 : WY1=YMAX*1.05!
  555. 15550          WX2=YMAX*1.05!*4/3 : WY2=-YMAX*.05!
  556. 15560       ELSE
  557. 15570          WX1=-XMAX*.05! : WY1=YMAX*1.05!
  558. 15580          WX2=XMAX*1.05! : WY2=-YMAX*.05!
  559. 15590 ENDIF
  560. 15600 IF XMAX=0 THEN WX1=-1 : WX2=1
  561. 15610 IF XMAX=0 AND YMAX=0 THEN WY1=1 : WY2=-1
  562. 15620 WINDOW(WX1,WY1)-(WX2,WY2)
  563. 15630 LINE(WX1,0)-(WX2,0),PSET,%13
  564. 15640 LINE(0,WY1)-(0,WY2),PSET,%13
  565. 15650 FOR I=1 TO N
  566. 15660    IF M=4 THEN XE(I)=XMAX(I)
  567. 15670    IF H(I)=0 THEN 15690
  568. 15680       LINE(0,H(I))-(WX1,H(I)),PSET,%12
  569. 15690    IF XE(I)=0 THEN 15710
  570. 15700       LINE(XE(I),0)-(XE(I),WY2),PSET,%12
  571. 15710    IF X(I)=0 THEN 15740
  572. 15720       LINE(0,YMAX(I))-(X(I),YMAX(I)),PSET,%12
  573. 15730       LINE(X(I),0)-(X(I),YMAX(I)),PSET,%12
  574. 15740    IF NOT M=2 THEN 15800
  575. 15750    IF XE2(I)=0 THEN 15770
  576. 15760       LINE(XE2(I),0)-(XE2(I),WY2),PSET,%12
  577. 15770    IF X2(I)=0 THEN 15800
  578. 15780       LINE(0,YMAX2(I))-(X2(I),YMAX2(I)),PSET,%12
  579. 15790       LINE(X2(I),0)-(X2(I),YMAX2(I)),PSET,%12
  580. 15800 NEXT I
  581. 15810 FOR I=1 TO N
  582. 15820    IF M=1 OR M=4 THEN 15870
  583. 15830    LINE(PX(I),PY(I))-(PX(I),0),OR,%12
  584. 15840    LINE(PX(I),PY(I))-(0,PY(I)),OR,%12
  585. 15850    DEF PEN 0,6
  586. 15860    PSET(PX(I),PY(I)),%14
  587. 15870    DEF PEN 0,1
  588. 15880    IF SD(I)<0 THEN 16120
  589. 15890    X2=0 : Y2=H(I)
  590. 15900    FOR J=0 TO TT(I)*500
  591. 15910       IN$=INKEY$ : IF IN$=CHR$(&H18) THEN J=TT(I)*500 : I=N
  592. 15920       T=J/500
  593. 15930       X1=V(I)*COS(D(I)*3.14159!/180)*T
  594. 15940       Y1=-.5!*G*T^2+V(I)*SIN(D(I)*3.14159!/180)*T+H(I)
  595. 15950       IF D(I)=90 OR D(I)=-90 THEN X1=0
  596. 15960       PSET(X1,Y1),%11
  597. 15970       PSET(X2,Y2),%I
  598. 15980       X2=X1 : Y2=Y1
  599. 15990    NEXT J
  600. 16000    IF SD(I)=0 THEN 16120
  601. 16010    X2=0 : Y2=H(I)
  602. 16020    FOR J=0 TO TT2(I)*500
  603. 16030       IN$=INKEY$ : IF IN$=CHR$(&H18) THEN J=TT2(I)*500 : I=N
  604. 16040       T=J/500
  605. 16050       X1=V(I)*COS(D2(I)*3.14159!/180)*T
  606. 16060       Y1=-.5!*G*T^2+V(I)*SIN(D2(I)*3.14159!/180)*T+H(I)
  607. 16070       IF D2(I)=90 OR D2(I)=-90 THEN X1=0
  608. 16080       PSET(X1,Y1),%11
  609. 16090       PSET(X2,Y2),%I
  610. 16100       X2=X1 : Y2=Y1
  611. 16110    NEXT J
  612. 16120 NEXT I
  613. 16130 'PCMPLAY SE06,127                                                 '**
  614. 16140 WHILE NOT INKEY$="" : WEND
  615. 16150 COLOR 4
  616. 16160 LOCATE  0, 0 : PRINT A$(38)
  617. 16170 IN$=INKEY$ : IF IN$="" THEN 16170
  618. 16180 IF IN$=CHR$(&H0D) THEN 16200 ELSE 16170                          '***
  619. 16190 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 ELSE 16170               '**
  620. 16200 ON M GOTO 11630,13170,14490,15260
  621. 16210 *文字判定1
  622. 16220 IN=VAL(IN$)
  623. 16230 'IF IN<0 THEN PCMPLAY SE04,127 ELSE PCMPLAY SE03,127              '**
  624. 16240 IF IN>0 THEN RETURN
  625. 16250 LOCATE  6,CY : PRINT SPC(74)
  626. 16260 IF IN=0 THEN LOCATE  6,CY : PRINT"0"
  627. 16270 RETURN
  628. 16280 *文字判定2
  629. 16290 IN=VAL(IN$)
  630. 16300 IF IN=0 THEN LOCATE  6,CY : PRINT SPC(74) : LOCATE  6,CY : PRINT"0"
  631. 16310 IF -90=<IN AND IN<=90 THEN RETURN                                '***
  632. 16320 LOCATE  6,CY : PRINT SPC(74)                                     '***
  633. 16330 'IF -90=<IN AND IN<=90 THEN PCMPLAY SE03,127 : RETURN             '**
  634. 16340 'LOCATE  6,CY : PRINT SPC(74) : PCMPLAY SE04,127                  '**
  635. 16350 RETURN
  636. 16360 *選択<処理1>
  637. 16370 LOCATE  0, 1 : PRINT A$(22)
  638. 16380 COLOR 6
  639. 16390 LOCATE 20, 1 : PRINT USING"##";N
  640. 16400 LOCATE 40, 1 : PRINT USING"##";10-N
  641. 16410 D=0
  642. 16420 COLOR 7
  643. 16430 LOCATE  0,23 : PRINT A$(23)
  644. 16440 COLOR 6
  645. 16450 LOCATE 10,23 : PRINT A$(1)
  646. 16460 IN$=INKEY$ : IF IN$="" THEN 16460
  647. 16470 IF IN$=CHR$(&H1C) THEN D=D+1 : IF D>3 THEN D=3 ELSE D=D : GOTO 16680
  648. 16480 IF IN$=CHR$(&H1D) THEN D=D-1 : IF D<0 THEN D=0 ELSE D=D : GOTO 16680
  649. 16490 IF IN$=CHR$(&H18) THEN *メニュー                                 '***
  650. 16500 IF IN$=CHR$(&H0D) THEN 16530 ELSE 16460                          '***
  651. 16510 'IF IN$=CHR$(&H18) THEN PCMPLAY SE02,127 : GOTO *メニュー         '**
  652. 16520 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 ELSE 16460               '**
  653. 16530 ON D GOTO 16600,16600,16610
  654. 16540 N=N+1 : IF N<11 THEN RETURN
  655. 16550 N=10 : D=1
  656. 16560 CLS
  657. 16570 COLOR 7
  658. 16580 LOCATE  2,23 : PRINT A$(25) : WAIT 200
  659. 16590 'PCMPLAY SE04,127                                                 '**
  660. 16600 RETURN
  661. 16610 N=N-1 : IF N>0 THEN RETURN
  662. 16620 N=1 : D=0
  663. 16630 CLS
  664. 16640 COLOR 7
  665. 16650 LOCATE  2,23 : PRINT A$(24) : WAIT 200
  666. 16660 'PCMPLAY SE04,127                                                 '**
  667. 16670 RETURN
  668. 16680 'PCMPLAY SE01,127                                                 '**
  669. 16690 ON D GOTO 16720,16750,16780
  670. 16700 LOCATE 10,23 : PRINT A$(1)
  671. 16710 LOCATE 19,23 : PRINT A$(0) : GOTO 16460
  672. 16720 LOCATE 10,23 : PRINT A$(0)
  673. 16730 LOCATE 19,23 : PRINT A$(1)
  674. 16740 LOCATE 28,23 : PRINT A$(0) : GOTO 16460
  675. 16750 LOCATE 19,23 : PRINT A$(0)
  676. 16760 LOCATE 28,23 : PRINT A$(1)
  677. 16770 LOCATE 41,23 : PRINT A$(0) : GOTO 16460
  678. 16780 LOCATE 28,23 : PRINT A$(0)
  679. 16790 LOCATE 41,23 : PRINT A$(1) : GOTO 16460
  680. 16800 *キー案内
  681. 16810 COLOR 4
  682. 16820 IF N=1 THEN 16840
  683. 16830 LOCATE  4,21 : PRINT A$(26)
  684. 16840 LOCATE  4,22 : PRINT A$(27)
  685. 16850 LOCATE  4,23 : PRINT A$(28)
  686. 16860 RETURN
  687. 16870 *選択<処理2>
  688. 16880 'PCMPLAY SE02,127                                                 '**
  689. 16890 D=0 : N=1 : XMAX=0 : YMAX=0
  690. 16900 CLS
  691. 16910 COLOR 7
  692. 16920 LOCATE  0,23 : PRINT A$(32)
  693. 16930 COLOR 6
  694. 16940 LOCATE 10,23 : PRINT A$(1)
  695. 16950 IN$=INKEY$ : IF IN$="" THEN 16950
  696. 16960 IF IN$=CHR$(&H1C) THEN D=D+1 : IF D>2 THEN D=2 ELSE D=D : GOTO 17020
  697. 16970 IF IN$=CHR$(&H1D) THEN D=D-1 : IF D<0 THEN D=0 ELSE D=D : GOTO 17020
  698. 16980 IF IN$=CHR$(&H18) THEN *エラー
  699. 16990 IF IN$=CHR$(&H0D) THEN 17010 ELSE 16950                          '***
  700. 17000 'IF IN$=CHR$(&H0D) THEN PCMPLAY SE02,127 ELSE 16950               '**
  701. 17010 RETURN
  702. 17020 'PCMPLAY SE01,127                                                 '**
  703. 17030 ON D GOTO 17060,17090
  704. 17040 LOCATE 10,23 : PRINT A$(1)
  705. 17050 LOCATE 25,23 : PRINT A$(0) : GOTO 16950
  706. 17060 LOCATE 10,23 : PRINT A$(0)
  707. 17070 LOCATE 25,23 : PRINT A$(1)
  708. 17080 LOCATE 38,23 : PRINT A$(0) : GOTO 16950
  709. 17090 LOCATE 25,23 : PRINT A$(0)
  710. 17100 LOCATE 38,23 : PRINT A$(1) : GOTO 16950
  711. 17110 *エラー
  712. 17120 CLS : WAIT 200 :  BEEP 1 : WAIT 100 : BEEP 0
  713. 17130 LOCATE  0, 0
  714. 17140 FOR I=0 TO 4095
  715. 17150    PRINT CHR$(INT(RND*256));
  716. 17160    IF RND<.05! THEN PRINT A$(INT(RND*50+1))
  717. 17170 NEXT I
  718. 17180 TIME$="00:00:00"
  719. 17190 BEEP 1
  720. 17200 COLOR 2
  721. 17210 WAIT 25 : CLS : WAIT 25
  722. 17220 LOCATE  2, 1 : PRINT A$(39)
  723. 17230 LOCATE  2, 3 : PRINT A$(40)
  724. 17240 IF TIME>3 THEN 17260
  725. 17250 IF TIME<3 THEN 17210 ELSE 17220
  726. 17260 BEEP 0
  727. 17270 COLOR 5
  728. 17280 LOCATE  2, 7 : PRINT A$(41)
  729. 17290 WAIT 200 : RANDOMIZE DATE*100000+TIME
  730. 17300 LOCATE  2, 9 : PRINT A$(42)
  731. 17310 M=INT(RND*90000) : N=800 : GOSUB 17500
  732. 17320 LOCATE 29, 1 : PRINT A$(43)
  733. 17330 M=INT(RND*90000) : N=400 : GOSUB 17500
  734. 17340 LOCATE 29, 1 : PRINT A$(44)
  735. 17350 M=INT(RND*90000) : N=200 : GOSUB 17500
  736. 17360 LOCATE 29, 1 : PRINT A$(45)
  737. 17370 M=INT(RND*90000) : N=100 : GOSUB 17500
  738. 17380 LOCATE 29, 1 : PRINT A$(46)
  739. 17390 M=INT(RND*90000) : N=500 : GOSUB 17500
  740. 17400 LOCATE 29, 1 : PRINT A$(47)
  741. 17410 M=INT(RND*90000) : N= 20 : GOSUB 17500
  742. 17420 LOCATE 29, 1 : PRINT A$(48)
  743. 17430 M=INT(RND*90000) : N=200 : GOSUB 17500
  744. 17440 LOCATE 29, 1 : PRINT A$(49)
  745. 17450 M=INT(RND*90000) : N=300 : GOSUB 17500
  746. 17460 LOCATE 29, 1 : PRINT A$(50)
  747. 17470 COLOR 7
  748. 17480 LOCATE 35, 1 : PRINT A$(38) 
  749. 17490 GOTO *終了
  750. 17500 COLOR 1
  751. 17510 I=0
  752. 17520    IF RND<.8! THEN M=M+1 ELSE M=M+INT(RND*1000)
  753. 17530    IF M>99999 THEN M=INT(RND*90000)
  754. 17540    IF RND<.9! THEN WAIT 1 ELSE WAIT INT(RND*20)+1
  755. 17550    LOCATE 30, 7 : PRINT USING"#####";M
  756. 17560 I=I+1 : IF I<N THEN 17520
  757. 17570 BEEP : WAIT 50 : COLOR 2
  758. 17580 RETURN
  759. 17590 *終了
  760. 17600 'PCMPLAY SE07,127                                                 '**
  761. 17610 WAIT 200
  762. 17620 CLS
  763. 17630 WINDOW(0,0)-(639,479)
  764. 17640 PALETTE
  765. 17650 CLEAR
  766. 17660 END
  767.